/**

 * This class will implement the Parking Lot Entity
 * 
 * @author Gil Levinson
 * @author Boris Fradlis
 * @author Yogev Levi
 * @author Hila Porat
 */
package vcpClasses;

import java.io.Serializable;

// Start of Parking Lot ***************************************************
@SuppressWarnings("serial")
public class ParkingLot implements Serializable {
	
	// class variables **************************************************
	
	
	private int ParkingLotNumber;
	final int numOfRows = 3;
	final int numOfFloors = 3;
	final int minOfSpacesInRow = 4;
	final int maxOfSpacesInRow = 8;
	private String lotStatus = "";
	private int NumOfSpacesInRow = 4;
	private float occasionalRate;
	private float advanceRate;
	private float hoursForRoutineS;
	private float hoursForRoutineM;
	private float hoursForNormal;
	private String kioskIP;
	
	// constructors *******************************************************
	
	/**
	 * Empty constructor
	 */
	
	public ParkingLot() {}
	
	/**
	 * Constructor using the following field:
	 * @param n the lot number
	 */
	
	public ParkingLot(int n)
	{
		this.ParkingLotNumber=n;
	}
	
	/**
	 * Constructor using the following field:
	 * @param k the KioskIP
	 */
	
	public ParkingLot(String k)
	{
		this.kioskIP = k;
	}
	
	/**
	 * Constructor using the following fields:
	 * @param n the lot number
	 * @param k the KioskIP
	 */
	
	public ParkingLot(int n, String k)
	 {
		 this.ParkingLotNumber = n;
		 this.kioskIP =  k;
	 }
	
	/**
	 * Constructor using given lot
	 * @param lot the given lot
	 */
	
	public ParkingLot(ParkingLot lot)
	 {
		 this.ParkingLotNumber = lot.getParkingLotNumber();
		 this.advanceRate = lot.getAdvanceRate();
		 this.hoursForNormal = lot.getHoursForNormal();
		 this.kioskIP =  lot.getKioskIP();
		 this.hoursForRoutineM = lot.getHoursForRoutineM();
		 this.hoursForRoutineS = lot.getHoursForRoutineS();
		 this.occasionalRate = lot.getOccasionalRate();
		 this.NumOfSpacesInRow = lot.getNumOfSpacesInRow();
	 }
	
	// Getters and Setters ***********************************************
	
	
	/**
	 * @return the parkingLotNumber
	 */
	public int getParkingLotNumber() {
		return ParkingLotNumber;
	}
	/**
	 * @param parkingLotNumber the parkingLotNumber to set
	 */
	public void setParkingLotNumber(int parkingLotNumber) {
		ParkingLotNumber = parkingLotNumber;
	}

	
	/**
	 * @return the lotStatus
	 */
	public String getLotStatus() {
		return lotStatus;
	}
	/**
	 * @param lotStatus the lotStatus to set
	 */
	public void setLotStatus(String lotStatus) {
		this.lotStatus = lotStatus;
	}
	/**
	 * @return the numOfSpacesInRow
	 */
	public int getNumOfSpacesInRow() {
		return NumOfSpacesInRow;
	}
	/**
	 * @param numOfSpacesInRow the numOfSpacesInRow to set
	 */
	public void setNumOfSpacesInRow(int numOfSpacesInRow) {
		NumOfSpacesInRow = numOfSpacesInRow;
	}
	/**
	 * @return the occasionalRate
	 */
	public float getOccasionalRate() {
		return occasionalRate;
	}
	/**
	 * @param occasionalRate the occasionalRate to set
	 */
	public void setOccasionalRate(float occasionalRate) {
		this.occasionalRate = occasionalRate;
	}
	/**
	 * @return the advanceRate
	 */
	public float getAdvanceRate() {
		return advanceRate;
	}
	/**
	 * @param advanceRate the advanceRate to set
	 */
	public void setAdvanceRate(float advanceRate) {
		this.advanceRate = advanceRate;
	}
	/**
	 * @return the hoursForRoutineS
	 */
	public float getHoursForRoutineS() {
		return hoursForRoutineS;
	}
	/**
	 * @param hoursForRoutineS the hoursForRoutineS to set
	 */
	public void setHoursForRoutineS(float hoursForRoutineS) {
		this.hoursForRoutineS = hoursForRoutineS;
	}
	/**
	 * @return the hoursForRoutineM
	 */
	public float getHoursForRoutineM() {
		return hoursForRoutineM;
	}
	/**
	 * @param hoursForRoutineM the hoursForRoutineM to set
	 */
	public void setHoursForRoutineM(float hoursForRoutineM) {
		this.hoursForRoutineM = hoursForRoutineM;
	}
	/**
	 * @return the hoursForNormal
	 */
	public float getHoursForNormal() {
		return hoursForNormal;
	}
	/**
	 * @param hoursForNormal the hoursForNormal to set
	 */
	public void setHoursForNormal(float hoursForNormal) {
		this.hoursForNormal = hoursForNormal;
	}


	/**
	 * @return the kioskIP
	 */
	public String getKioskIP() {
		return kioskIP;
	}


	/**
	 * @param kioskIP the kioskIP to set
	 */
	public void setKioskIP(String kioskIP) {
		this.kioskIP = kioskIP;
	}
} // End of Parking Lot
